import defaultAppConfig from '@/app.config'
import { removeAppConfig, setAppConfig, TipModal } from '@/utils'

/**
 * 系统设置相关状态管理
 */
export default defineStore('setting', () => {
  /** 是否显示设置面板 */
  const showSetting = ref<boolean>(false)
  /** 应用配置状态（基于默认配置初始化） */
  const config = reactive<AppConfig>(defaultAppConfig)

  /** 保存设置到本地 */
  function saveSetting() {
    TipModal.showLoading('正在保存到本地，请稍候...')
    setAppConfig(toRaw(config))
    setTimeout(() => TipModal.hideLoading(), 1500)
  }

  /** 重置设置并刷新页面 */
  function resetSetting() {
    TipModal.showLoading('正在清除设置缓存并刷新，请稍候...')
    removeAppConfig()
    setTimeout(() => window.location.reload(), 1500)
  }

  return { ...toRefs(config), showSetting, saveSetting, resetSetting }
})
